package com.xes.attend.config;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.hibernate.validator.constraints.NotBlank;
import org.springframework.boot.context.properties.ConfigurationProperties;

import javax.validation.constraints.NotNull;
import java.util.Date;

/***
 * @description 应用外部配置类
 * @author wjl
 * @ClassName: ServerConfig
 * @Version 版本
 * @ModifiedBy wjl
 * @Copyright xes
 * @date 2015年11月25日 下午1:30:17
 */
@ConfigurationProperties(prefix = "server")
public class ServerConfig {
	private static final Integer BeginClassTimeDefault = 60;
	
	@NotBlank(message = "城市区号不能为空!")
	private String areaCode;
	@NotBlank(message = "教学点ID不能为空!")
	private String venueId;
	@NotBlank(message = "主机名称不能为空!")
	private String hostName;
	@NotNull(message = "读卡器ip地址不能为空!")
	private String[] cardReaderIp;
	private Boolean isDownloadAttendByToday = false;
	private Date AttendDay = new Date();
	private Integer BeginClassTime = BeginClassTimeDefault;

	/**
	 * 城市区号
	 * 
	 * @return
	 */
	public String getAreaCode() {
		return areaCode;
	}

	public void setAreaCode(String areaCode) {
		this.areaCode = areaCode;
	}

	/***
	 * 教学点ID
	 * 
	 * @author wjl
	 * @title: getVenueId
	 * @date 2015年11月25日 下午1:31:41
	 * @return String
	 */
	public String getVenueId() {
		return venueId;
	}

	public void setVenueId(String venueId) {
		this.venueId = venueId;
	}

	/***
	 * 应用部署主机名
	 * 
	 * @author wjl
	 * @title: getVenueId
	 * @date 2015年11月25日 下午1:31:41
	 * @return String
	 */

	public String getHostName() {
		return hostName;
	}

	public void setHostName(String hostName) {
		this.hostName = hostName;
	}

	/***
	 * 所有连接服务端的刷卡机
	 * 
	 * @author wjl
	 * @title: getCardReaderIp
	 * @date 2015年11月25日 下午1:32:16
	 * @return List<String>
	 */

	public String[] getCardReaderIp() {
		return cardReaderIp;
	}

	public void setCardReaderIp(String[] cardReaderIp) {
		this.cardReaderIp = cardReaderIp;
	}

	/**
	 * 判断是否已经同步了全量考勤数据
	 * 
	 * @return
	 */
	public Boolean getDownloadAttendByToday() {
		return isDownloadAttendByToday;
	}

	public void setDownloadAttendByToday(Boolean downloadAttendByToday) {
		isDownloadAttendByToday = downloadAttendByToday;
	}

	/**
	 * 考勤数据日期
	 * @return
	 */
	public Date getAttendDay() {
		return AttendDay;
	}

	public void setAttendDay(Date attendDay) {
		AttendDay = attendDay;
	}
	/**
	 * 考勤开课前刷卡时间
	 * 
	 * @return
	 */
	public Integer getBeginClassTime() {
		return BeginClassTime;
	}

	public void setBeginClassTime(Integer beginClassTime) {
		BeginClassTime = beginClassTime;
	}

	@Override
	public String toString() {
		return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);
	}

}
